import { defineStore } from "pinia";

//定义tab数据
export type Tab = {
    title:string,
    path:string
}

//定义state的数据类型
export type TabState = {
    tabList:Tab[]
}

//定义Store
export const tabStore = defineStore('tabStore',{
    state:():TabState=>{
        return{
            tabList:[]
        }
    },
    getters:{
        getTab(state){
            return state.tabList
        }
    },
    actions:{
        //添加选项卡
        addTab(tab:Tab){
            //判断是否已经有相应的选项卡
            if(this.tabList.some(item=>item.path === tab.path)){
                //如果存在就不添加
                return
            }
            //判断首页不能被删除
            if(tab.path == '/dashboard'){
                //添加到第一个
                this.tabList.unshift(tab)
            }else{
                this.tabList.push(tab)
            }
        }
    },
    //开启Pinia数据持久化
    // persist: true
    persist:{
        storage: sessionStorage,
        pick: ['tabList']
    }
})